1. Technical Field
This invention relates to the field of telecommunications, and more particularly, to a method of directly changing service attributes corresponding to service components.
2. Description of the Related Art
The development of the open network application programming interface (API) represents an important departure from the traditional method by which the architecture of the public switched telephone network (PSTN) was first opened. Traditionally, the Advanced Intelligent Network (AIN) architecture defined a call model which allowed the creation of telecommunications service applications outside of the switch environment. Telecommunications service applications are a la carte telecommunications applications which can perform enhanced services for a telecommunications session established among two or more parties. Exemplary service applications can include Call Waiting, Caller ID, Call Forwarding, Voice Activated Dialing, and Meet-me Conferencing.
When AIN first had been introduced, in terms of the service application creation process, the AIN architecture represented an important advance. AIN separated service development from switching, allowing service logic components to be developed more quickly and placed in specialized network elements attached to databases. Switches, in turn, being free from all service logic, could be optimized for speed and efficiency. Still, typical service applications which were developed to the AIN specification were written in specialized languages by specially trained programmers using specialized service creation environments.
Importantly, future telecommunications networks will be characterized by new and evolving network architectures where packet-switched, circuit-switched, and wireless networks are integrated to offer subscribers an array of innovative multimedia, multiparty applications. Equally important, it is expected that the process by which telecommunications applications are developed will change, and will no longer solely be the domain of the telecommunications network or service application provider. In fact, in order to provide a broad portfolio of novel, compelling applications rapidly, service application providers will increasingly turn to third-party applications developers and software vendors. Thus, application development in the telecommunications domain will become more similar to that of software and information technology in general, with customers reaping the benefits of increased competition, reduced time to market, and rapid leveraging of new technology as it is developed.
To make this vision a reality, the principles of AIN have been discarded in favor of a new service application component development paradigm. Specifically, it has been recognized that future integrated networks must offer application developers a set of standard, open APIs so that applications written for compatibility with one vendor's system can execute in the system of another vendor. In consequence, the cost of applications development can be amortized, reducing the final cost to the customer. JAVA programming language APIs for Integrated Networks (JAIN) fulfills the requirements of the new service application component development paradigm. Presently, JAIN includes standard, open published JAVA programming language APIs for next-generation systems consisting of integrated Internet Protocol (IP) or asynchronous transport mode (ATM) networks, PSTN, and wireless networks. The JAIN APIs include interfaces at the protocol level, for different protocols such as Media Gateway Control Protocol (MGCP), Session Initiation Protocol (SIP), and Transactional Capabilities Application Part (TCAP), as well as protocols residing in the higher layers of the telecommunications protocol stack.
JAIN includes a set of integrated network APIs for the JAVA programming language platform and an environment to build and integrate JAIN components into services or applications that work across PSTN, packet and wireless networks. The JAIN approach integrates wireline, wireless, and packet-based networks by separating service-based logic from network-based logic. FIG. 1 illustrates a conventional JAIN implementation. As shown in FIG. 1, a conventional JAIN implementation can include a protocol layer 102 which can include interfaces to IP, wireline and wireless signaling protocols. These protocols can include TCAP, ISUP, INAP, MAP, SIP, MGCP, and H.323. The JAIN implementation also can include a signaling layer 103 which can include interfaces to provide connectivity management and call control. The conventional JAIN implementation also can include an application layer 104 for handling secure network access and other external services. Finally, the conventional JAIN implementation can include a service layer 106 which can include a service creation and carrier grade service logic execution environment (SLEE) 108.
In JAIN, the protocol layer 102 and the signaling layer 103 are based upon a JAVA programming language standardization of specific signaling protocols and provide standardized protocol interfaces in an object model. Additionally, applications and protocol stacks can be interchanged all the while providing a high degree of portability to the applications in the application layer using protocol stacks from different sources. By comparison, the application layer 104 provides a single call model across all supported protocols in the protocol layer 102. Fundamentally, the application layer 104 provides a single state machine for multiparty, multimedia, and multiprotocol sessions for service components in the application layer 104. This state machine is accessible by trusted applications that execute in the application layer 104 through a call control API.
Notably, applications or services executing at the service level 102 can communicate directly with protocol adapters in the SLEE 108. Protocol adapters typically are class methods, callbacks, event or interfaces that encapsulate the underlying resources such as TCAP, MGCP, etc. The underlying resources can be implemented in many programming languages, but a JAIN-conformant protocol product must provide at least the relevant JAIN API. In contrast, an external application or service executing in the application layer 104 does not have to be aware of the underlying resources and can remain oblivious to the fact that some of its session or call legs may be using different protocols.
Service components 112 are the core JAIN components and can execute in the SLEE 108. More particularly, service components 112 are constructed according to a standard component model and, instantiations of component assemblies execute in coordination with the SLEE 108. Using information regarding the protocol layer 102 which can be incorporated into the SLEE 108, service components 112 can interact with the underlying protocol stacks without having specific knowledge of the protocol stack. Thus, service components 112 can use the call model provided by the signaling layer to implement telephony services. More importantly, the SLEE 108 can relieve the service components 112 of conventional lifecycle responsibilities by providing portable support for transactions, persistence, load balancing, security, and object and connection instance pooling. In this way, the service components 112 can focus on providing telephony services.
Presently, a user can change various aspects of a service such as call forwarding, call blocking, or messaging, through a Web-based interface such as a hypermedia document or HTML Web page running over the Internet. These service aspects can include service information such as telephone numbers to be blocked, times which particular numbers can be blocked, as well as other behavioral aspects of a service such as the type of message to be played to particular calling numbers or the number of rings before the messaging service answers the telephone. The service information and behavioral parameters of the service collectively can be referred to as service attributes and are conventionally stored within a separate database external to both the hypermedia document and the actual services which can be implemented with one or more service components 112. Once the user initiates changes to the service attributes from the hypermedia document, the service attribute information can be updated in a manner consistent with the user's desired changes.
As shown in FIG. 1, conventional systems for updating service attribute information typically are separate and distinct from the services which actually use the information. For example, once the user has requested a change to a service attribute, a hypermedia document 210 can access a database management component 116 to update the service attribute information in a service attribute database 114. Though the service components can contain service attribute information, the service component must access the service attribute information database 114 and synchronize its service attribute information with the updated information contained within the service attribute database 114. This synchronization process between the service component 112 and the service attribute database 114 often can require another separate and distinct component or service such as synchronization component 118. Notably, the database management component 116, the synchronization component 118, as well as the service attributes database 114, each operate external to the JSLEE 108.